class PrintsController < ApplicationController
before_filter :require_user
layout 'users'

  def new
    if !current_user.may_add?
      flash[:error] = 'Nie możesz wysyłać zleceń, skontaktuj się z administracją serwisu.'
      redirect_to :controller => 'users', :action => 'index'
    end
    @print = Print.new
    # to ponizej nie zwraca zadnych wynikow... dzwine.
    @admins_logged = User.find(:all, :conditions => ["logged_in = ?", true])
  end

  def create
    if !current_user.may_add?
      flash[:error] = 'Nie możesz wysyłać zleceń, skontaktuj się z administracją serwisu.'
      redirect_to :controller => 'users', :action => 'index'
    end
    @print = Print.new(params[:print])
    @admins_logged = User.find(:all, :conditions => ["logged_in = ?", true])  
    if @print.save
      respond_to do |format|
        format.js
        format.html do
          flash[:notice] = 'Zlecenie druku pliku ' + @print.attachment_file_name + ' zostało wysłane.'
          redirect_to :controller => 'users', :action => 'prints'
        end
      end
    else
      render :action => "new"
    end
  end

  def show
    @print = Print.find(params[:id])    
  end

  def edit
    @print = Print.find(params[:id])
    @user = @print.user
  end

  def update
    @print = Print.find(params[:id])       
    if @print.update_attributes(params[:print])
      @print.printed = true
      if @print.save 
        u = User.find(:first, :conditions => {:id => @print.user_id})
        @price =  -@print.price
        u.payments.create :amount => @price, :comment => 'Zapłata za druk o nazwie '+@print.attachment_file_name+' (ID = '+@print.id.to_s+')'
        if u.print_notification
          @print.user.deliver_print_notification!
        end
        flash[:notice] = 'Zmniejszył się czas pozostałej pracy : )'
        redirect_to :controller => "admin", :action => "prints"
      else
        flash[:error] = 'Liczba stron musi być większa od 0!'
        redirect_to :controller => "admin", :action => "prints"
      end
    else
      #render :action => "print" to na dole nie potrzebne niby...
      flash[:error] = 'Liczba stron musi być większa od 0'
      redirect_to :controller => "admin", :action => "prints"
    end
  end
  
  def mark_as_printed
    @print = Print.find(params[:id])    
  end  

end
